Мы переходим за пределы возможностей линейных моделей, которые испытывают трудности при классификации данных, неразделимых прямой линией. Сегодня мы применяем рабочий процесс PyTorch для создания глубокой нейронной сети (ГНС) способной изучать сложные нелинейные границы решенийнеобходимые для решения реальных задач классификации.
1. Визуализация необходимости нелинейных данных
Наш первый шаг — создать сложный синтетический набор данных, например, распределение двух полумесяцев, чтобы наглядно продемонстрировать, почему простые линейные модели терпят неудачу. Эта настройка вынуждает нас использовать глубокие архитектуры для приближения необходимой сложной кривой, разделяющей классы.
Свойства данных
- Структура данных:Синтетические признаки данных (например, $1000 \times 2$ для $1000$ образцов с 2 признаками).
- Тип выходных данных: Одно значение вероятности, часто
torch.float32, отражающее принадлежность к классу. - Цель: Создать кривую границу решений с помощью многослойных вычислений.
Сила нелинейных активаций
Основной принцип ГНС — введение нелинейности в скрытых слоях с помощью функций, таких как ReLU. Без них последовательное наложение слоёв просто приведёт к одной большой линейной модели, независимо от глубины.
ТЕРМИНАЛbash — среда классификации
> Готово. Нажмите «Запустить», чтобы выполнить.
>
ИНСПЕКТОР ТЕНЗОРОВ В режиме реального времени
Запустите код, чтобы проверить активные тензоры
Вопрос 1
Какова основная цель функции активации ReLU в скрытом слое?
Вопрос 2
Какая функция активации требуется в выходномслое для задачи бинарной классификации?
Вопрос 3
Какая функция потерь напрямую соответствует задаче бинарной классификации с использованием сигмоидного выхода?
Вызов: Проектирование основной архитектуры
Интеграция компонентов архитектуры для нелинейного обучения.
Вам нужно создать
nn.Module для задачи двух полумесяцев. Признаки входа: 2. Классы выхода: 1 (вероятность).
Шаг 1
Опишите порядок вычислений для одного скрытого слоя в этой ГНС.
Решение:
Вход $\to$ Линейный слой (матрица весов) $\to$ Активация ReLU $\to$ Выход следующему слою.
Вход $\to$ Линейный слой (матрица весов) $\to$ Активация ReLU $\to$ Выход следующему слою.
Шаг 2
Каким должно быть размер последнего слоя, если форма входа $(N, 2)$, а используется функция потерь BCE?
Решение:
Выходной слой должен иметь размер $(N, 1)$, чтобы каждый образец давал одно значение вероятности, соответствующее форме метки.
Выходной слой должен иметь размер $(N, 1)$, чтобы каждый образец давал одно значение вероятности, соответствующее форме метки.